import { initData, initComputed, InitWatch, initMethods } from "./state";
import { Watcher } from "../observer/watcher";
export function initMixin(Vue) {
  Vue.prototype._init = function (option: Object) {
    const vm = this;
    vm.$options = option;
    initState(vm);
  };
}

function initState(vm) {
  const opt = vm.$options;
  if (opt.data) {
    initData(vm);
  }
  /* 计算属性 */
  if (opt.computed) {
    initComputed(vm);
  }
  if (vm.$options.watch) {
    InitWatch(vm);
  }
  /* methods */
  if (vm.$options.methods) {
    initMethods(vm);
  }
}
